package jssia.database.mysql.databases.information_schema;

import jssia.database.ColumnInfo;
import jssia.database.TableInfo;
import jssia.database.mysql.columns.DateTimeColumn;
import jssia.database.mysql.columns.UnsignedBigIntColumn;
import jssia.database.mysql.columns.VarCharColumn;

@TableInfo ()
public class Tables {

    private Tables() {
    }

    public final static String TO_STRING = "information_schema.tables";

    @ColumnInfo(nullable = false)
    public final static VarCharColumn TABLE_CATALOG = new VarCharColumn(512);

    @ColumnInfo(nullable = false)
    public final static VarCharColumn TABLE_SCHEMA = new VarCharColumn(64);

    @ColumnInfo(nullable = false)
    public final static VarCharColumn TABLE_NAME = new VarCharColumn(64);

    @ColumnInfo(nullable = false)
    public final static VarCharColumn TABLE_TYPE = new VarCharColumn(64);

    public final static VarCharColumn ENGINE = new VarCharColumn(64);

    public final static UnsignedBigIntColumn VERSION = new UnsignedBigIntColumn();

    public final static VarCharColumn ROW_FORMAT = new VarCharColumn(10);

    public final static UnsignedBigIntColumn TABLE_ROWS = new UnsignedBigIntColumn();

    public final static UnsignedBigIntColumn AVG_ROW_LENGTH = new UnsignedBigIntColumn();

    public final static UnsignedBigIntColumn DATA_LENGTH = new UnsignedBigIntColumn();

    public final static UnsignedBigIntColumn MAX_DATA_LENGTH = new UnsignedBigIntColumn();

    public final static UnsignedBigIntColumn INDEX_LENGTH = new UnsignedBigIntColumn();

    public final static UnsignedBigIntColumn DATA_FREE = new UnsignedBigIntColumn();

    public final static UnsignedBigIntColumn AUTO_INCREMENT = new UnsignedBigIntColumn();

    public final static DateTimeColumn CREATE_TIME = new DateTimeColumn();

    public final static DateTimeColumn UPDATE_TIME = new DateTimeColumn();

    public final static DateTimeColumn CHECK_TIME = new DateTimeColumn();

    public final static VarCharColumn TABLE_COLLATION = new VarCharColumn(32);

    public final static UnsignedBigIntColumn CHECKSUM = new UnsignedBigIntColumn();

    public final static VarCharColumn CREATE_OPTIONS = new VarCharColumn(255);

    @ColumnInfo(nullable = true)
    public final static VarCharColumn TABLE_COMMENT = new VarCharColumn(2048);
}
